package almacenes.modelo.dao.impl;

import java.util.ArrayList;
import java.util.List;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.Transaction;

import almacenes.modelo.dao.DepartamentoDao;
import almacenes.modelo.entidad.Departamento;
import almacenes.modelo.util.HibernateUtil;

public class DepartamentoDaoImpl implements DepartamentoDao{

	private Log logger = LogFactory.getLog(this.getClass());
	private Session sesion;
	private Transaction tx;

	
	@Override
	public List<Departamento> getListaDepartamentos() {
		
		List<Departamento> lstDep = new ArrayList<Departamento>();
		
		this.logger.info("getListaDepartamentos");
		try {
			this.logger.info("try");
			iniciaOperacion();
			lstDep = sesion.createQuery("select u from Departamento u").list();
			
		}catch (Exception ex) {
			String sMensaje = "Error en el hibernate dao";
			this.logger.error(sMensaje, ex);
		}finally {
			sesion.close();
		}
		
		return lstDep;
		
	}

	private void iniciaOperacion() throws HibernateException {
		sesion = HibernateUtil.getSessionFactory().openSession();
		tx = sesion.beginTransaction();
	}

	
}
